অ্যাপাচি কাফকা (Apache Kafka) একটি ডিস্ট্রিবিউটেড স্ট্রিমিং প্ল্যাটফর্ম, যেখানে ডেটা বিভিন্ন ব্রোকার (Brokers) দ্বারা পরিচালিত হয়। কাফকা ক্লাস্টারে প্রতিটি পার্টিশনের জন্য একটি লিডার (Leader) এবং এক বা একাধিক ফলোয়ার (Follower) ব্রোকার থাকে। এই লিডার-ফলোয়ার মডেল কাফকার ডেটা রিপ্লিকেশন এবং ফেইলওভার প্রক্রিয়াকে আরও কার্যকর এবং নির্ভরযোগ্য করে তোলে।
Leader Broker
Leader Broker হলো একটি ব্রোকার যা একটি নির্দিষ্ট পার্টিশনের "লিডার" হিসেবে কাজ করে। এটি একমাত্র ব্রোকার যা পার্টিশনের ডেটা লেখার এবং পাঠানোর জন্য দায়িত্বশীল। অর্থাৎ, সব প্রডিউসাররা ডেটা শুধুমাত্র লিডার ব্রোকারে পাঠায় এবং সব কনজিউমাররা লিডার থেকে ডেটা গ্রহণ করে।
Leader Broker এর দায়িত্ব:
- ডেটা লেখার জন্য দায়িত্ব: লিডার ব্রোকারের কাছে সেই পার্টিশনের সকল ডেটা লেখার কাজ সম্পাদিত হয়। প্রডিউসাররা যখন মেসেজ পাঠায়, তা লিডার পার্টিশনের কাছে পৌঁছায় এবং সংরক্ষিত হয়।
- ফলোয়ার ব্রোকারের সঙ্গে সমন্বয় করা: লিডার ব্রোকার ফলোয়ার ব্রোকারগুলির সাথে ডেটা রিপ্লিকেট করে। ফলোয়াররা লিডারের থেকে তাদের পার্টিশনের ডেটা কপি করে রাখে, যাতে ফেইলওভার ঘটলে ডেটা হারানো না যায়।
- রিপ্লিকেশন পলিসি পরিচালনা: লিডার ব্রোকার ডেটার রিপ্লিকেশন নিশ্চিত করে, অর্থাৎ, ফলোয়ার ব্রোকারদের কাছে সঠিকভাবে ডেটা কপি হয়ে গেছে কিনা, সেটি নিশ্চিত করা।
- পার্টিশনের অফসেট ট্র্যাকিং: লিডার ব্রোকার অফসেট (Offset) ট্র্যাক করে, যার মাধ্যমে কনজিউমাররা সঠিক স্থান থেকে ডেটা পড়তে পারে।
উদাহরণ:
ধরা যাক, একটি টপিকের নাম user-events, এবং এটি ৩টি পার্টিশনে বিভক্ত। যদি পার্টিশন 1-এর লিডার ব্রোকার Broker-1 হয়, তাহলে সমস্ত ডেটা Broker-1-এ লেখা হবে। কনজিউমাররা Broker-1 থেকে ডেটা পড়বে, এবং ফলোয়ার ব্রোকারগুলি (যেমন Broker-2, Broker-3) লিডারের ডেটা কপি করে রাখবে।
Follower Broker
Follower Broker হলো একটি ব্রোকার যা লিডার ব্রোকারের রিপ্লিকেশন কপি হিসেবে কাজ করে। ফলোয়ার ব্রোকারের প্রধান কাজ হলো লিডার থেকে ডেটার কপি নিয়ে আসা এবং একে আপডেট রাখা।
Follower Broker এর দায়িত্ব:
- লিডারের ডেটা কপি করা: ফলোয়ার ব্রোকার লিডার ব্রোকার থেকে পার্টিশনের ডেটা কপি করে রাখে। এটি সাধারণত ডেটা সিঙ্ক্রোনাইজ করতে ব্যবহৃত হয়।
- ফেইলওভার পরিস্থিতিতে কাজ: যদি লিডার ব্রোকার কোনো কারণে অপ্রাপ্য হয়ে যায় (যেমন ক্র্যাশ বা ডাউন), তবে একটি ফলোয়ার ব্রোকার স্বয়ংক্রিয়ভাবে নতুন লিডার হয়ে ওঠে এবং ডেটা পরিচালনা করতে শুরু করে।
- লিডারের সাথে সিঙ্ক্রোনাইজেশন বজায় রাখা: ফলোয়ার ব্রোকারগুলি নিয়মিতভাবে তাদের ডেটা আপডেট করে, যাতে নিশ্চিত করা যায় যে ডেটা সঠিক এবং সর্বশেষ অবস্থা থেকে একেবারে এক্সট্রাক্ট করা সম্ভব।
- ডেটা অটোমেটিক রিপ্লিকেশন: ফলোয়ার ব্রোকার লিডারের ডেটা রিপ্লিকেশন পলিসি অনুযায়ী ডেটা রিসিভ করে এবং রিপ্লিকেটেড ডেটার কপি রাখে।
উদাহরণ:
ধরা যাক, Broker-2 এবং Broker-3 লিডার Broker-1 এর ফলোয়ার হিসেবে কাজ করছে। এই ব্রোকার দুটি স্বয়ংক্রিয়ভাবে লিডার ব্রোকার থেকে ডেটা গ্রহণ করে এবং তাদের নিজস্ব পার্টিশন কপি আপডেট রাখে।
Leader এবং Follower এর সম্পর্ক
- রিপ্লিকেশন: লিডার ব্রোকারের ডেটা ফলোয়ার ব্রোকারদের কাছে রিপ্লিকেট করা হয়। ফলোয়াররা ডেটার কপি রাখে এবং লিডারের সাথে সিঙ্ক্রোনাইজ হয়।
- ফেইলওভার: যদি লিডার ব্রোকার অপ্রাপ্য হয়ে যায়, তাহলে একজন ফলোয়ার ব্রোকার স্বয়ংক্রিয়ভাবে নতুন লিডার হয়ে ওঠে এবং ডেটা প্রক্রিয়াকরণ চালিয়ে যায়। এটি সিস্টেমের উচ্চ অ্যাভেইলেবিলিটি এবং ফেলওভার নিশ্চিত করে।
- পারফরম্যান্স: লিডার ব্রোকার শুধুমাত্র ডেটা লেখার এবং পাঠানোর জন্য দায়িত্বশীল, যখন ফলোয়ার ব্রোকার শুধুমাত্র রিপ্লিকেশন এবং ডেটা কপি রাখে। এটি সিস্টেমের পারফরম্যান্সকে উপকারে আনে, কারণ লিডারের ওপর সমস্ত ডেটা লেখার কাজ চাপানো হয়, এবং ফলোয়াররা সিঙ্ক্রোনাইজেশন বজায় রাখে।
Leader এবং Follower Brokers এর কনফিগারেশন
কাফকা ক্লাস্টারে লিডার এবং ফলোয়ার ব্রোকারগুলির কার্যক্রম সঠিকভাবে পরিচালনা করার জন্য কিছু কনফিগারেশন ফাইলের প্যারামিটার রয়েছে:
replication.factor: এটি নির্ধারণ করে প্রতিটি পার্টিশনের রিপ্লিকেশন সংখ্যা কত হবে। উদাহরণস্বরূপ, একটি রিপ্লিকেশন ফ্যাক্টর ৩ থাকলে, প্রতিটি পার্টিশনের ৩টি কপি থাকবে—একটি লিডার এবং দুটি ফলোয়ার।min.insync.replicas: এটি নির্ধারণ করে, একটি পার্টিশনের কতটা রিপ্লিকেশন সিঙ্ক্রোনাইজ থাকতে হবে, যাতে লিডার মেসেজ কমিট করতে পারে। এটি ডেটার ইনটিগ্রিটি নিশ্চিত করতে সাহায্য করে।unclean.leader.election.enable: যদি লিডার ব্রোকার অপ্রাপ্য হয়ে যায় এবং কোনো ফলোয়ারে প্রয়োজনীয় রিপ্লিকেশন না থাকে, তবে নতুন লিডার নির্বাচনের জন্য এটি একটি প্যারামিটার। সাধারণত এটিfalseরাখা হয় যাতে ডেটার অখণ্ডতা বজায় থাকে।
সারাংশ
Leader এবং Follower Brokers কাফকা ক্লাস্টারে ডেটা পরিচালনার গুরুত্বপূর্ণ ভূমিকা পালন করে। লিডার ব্রোকার ডেটা লেখার এবং পাঠানোর জন্য দায়িত্বশীল, এবং ফলোয়ার ব্রোকারগুলো লিডার থেকে ডেটা কপি করে রাখে এবং লিডার ফেইল হলে নতুন লিডার হিসেবে নির্বাচিত হয়। এই লিডার-ফলোয়ার মডেল কাফকা সিস্টেমের ফেলওভার, ডেটা রিপ্লিকেশন এবং হাই অ্যাভেইলেবিলিটি নিশ্চিত করে।
Read more